

# 定义变量:

import cvxpy as cp

# help(cp.Variable)

# 注意：
# 1.Problems 是不可变的，这意味着它们在创建后不能更改。要更改目标或约束，请创建一个新问题。
# 2.对于最小化问题，如果问题无法实现，则最优值为 inf ；如果问题无界，则最优值为 -inf 。对于最大化问题来说，情况正好相反。
# 3.Variables 可以是标量、向量或矩阵，即它们可以是 0、1 或 2 维的。
# 目前可以使用以下类型作为常数：
#
# NumPy的ndarrays（NumPy的多维数组）
#
# NumPy的matrices（NumPy的矩阵）
#
# SciPy的sparse matrices（SciPy的稀疏矩阵）


# cp.Variable(shape=(), name=None, var_id=None, **kwargs)

# 基本属性

# shape: 表示形状, 可以使用元组 (3,2) 表示 3 × 2的矩阵

# name: 变量名字, 可以使用字符串

# 数学性质

# 例如

x=cp.Variable(shape=(3,3), name='cov', symmetric=True)

print("(3,3) x=\n", x.value)

# 标量变量。
a = cp.Variable()

# 形状为 (5,) 的向量变量。
x = cp.Variable(5)

# 形状为 (5, 1) 的矩阵变量。
x = cp.Variable((5, 1))

# 形状为 (4, 7) 的矩阵变量。
A = cp.Variable((4, 7))


# 数域

# boolean 布尔型, integer 整数型

x=cp.Variable(shape=(1),boolean=True)

y=cp.Variable(shape=(1),integer=True)

# neg 负数 nonneg 非负

x=cp.Variable(shape=(1),nonneg=True)

print("(1) nonneg=True x=\n", x.value)

# pos 正数 nonpos 非正

x=cp.Variable(shape=(1),nonpos=True)

# complex 复数 imag 虚数

# 矩阵

# hermitian 共轭对称性

# NSD 半负定矩阵 PSD 半正定矩阵

# symmetric 对称矩阵

